Various forms of network storage systems are known today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc.
A network storage system typically includes at least one storage server, which is a processing system configured to store and retrieve data on behalf of one or more client processing systems (“clients”). In the context of NAS, a storage server may be a file server, which is sometimes called a “filer”. A filer operates on behalf of one or more clients to store and manage shared files in a set of mass storage devices, such as magnetic or optical disks or tapes. The mass storage devices may be organized into one or more volumes of a Redundant Array of Inexpensive Disks (RAID). Filers are made by Network Appliance, Inc. of Sunnyvale, Calif.
In a SAN context, the storage server provides clients with block-level access to stored data, rather than file-level access. Some storage servers are capable of providing clients with both file-level access and block-level access, such as Filers made by Network Appliance, Inc.
A business enterprise or other organization that manages large volumes of data may operate one or more storage servers. These storage servers may be connected to each other through one or more networks. The storage servers and other network components may be managed by one or more network administrators (also called “administrative users” or simply “administrators”), who are responsible for configuring, provisioning and monitoring the storage servers, scheduling backups, troubleshooting problems with the storage servers, performing software upgrades, etc. These management tasks can be accomplished by the administrator using a separate management console on the network, which is a computer system that runs storage management application software specifically designed to manage a distributed storage infrastructure. An example of such a storage management application is DataFabric® Manager (DFM), made by Network Appliance, Inc. of Sunnyvale, Calif.
To prevent unauthorized users from accessing and controlling functions of the storage servers, there is a need for some form of access control. One form of access control is Role Based Access Control (RBAC). Within an organization, roles are created for various job functions. The permission to perform certain functions is assigned to specific roles. Members of staff (or other system users) are assigned particular roles, and through those role assignments acquire the permissions to perform particular system functions.
Since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of simply assigning the appropriate roles to the user, which simplifies common operations such as adding a user, or changing a user's department.
In an RBAC system, a role may be assigned the permission to perform an operation on an object. An object is an entity within a system. An object may be a composite object containing one or more other objects, or a simple object containing no other objects. Here, the phrase “perform an operation on an object” has the meaning of both performing the operation on the object and performing the operation within the object. The object may be a logical object or a physical object. Examples of logical object include a bank account in a banking system, a volume in a network storage system, or a role in an RBAC system. Examples of physical object include a harddrive, a network interface card, etc. When a permission to perform an operation on an object is assigned to a role, the object is statically specified. That is, the identity of the object is already determined at the time the permission is assigned to the role. The static mechanism, however, limits the flexibility of the RBAC system, especially when the system (such as a network storage system) that the RBAC system is controlling changes frequently.